﻿using System;

namespace NRank.Benchmark.Benchmarking
{
	/// <summary>
	/// Data class containing information about one benchmark result (one measured time value).
	/// </summary>
	public class BenchmarkResult
	{
		/// <summary>
		/// Result size
		/// </summary>
		public int K { get; private set; }

		/// <summary>
		/// Measured time
		/// </summary>
		public TimeSpan TimeConsumed { get; private set; }

		/// <summary>
		/// Used algorithm name
		/// </summary>
		public string AlgorithmName { get; private set; }

		public int LeftDepth { get; private set; }
		public int RightDepth { get; private set; }

		/// <summary>
		/// Creates instance of BenchmarkResult
		/// </summary>
		/// <param name="k">Result size</param>
		/// <param name="timeConsumed">Measured time</param>
		/// <param name="algorithmName">Used algorithm name</param>
		public BenchmarkResult(int k, TimeSpan timeConsumed, string algorithmName, int leftDepth, int rightDepth)
		{
			K = k;
			TimeConsumed = timeConsumed;
			AlgorithmName = algorithmName;
			LeftDepth = leftDepth;
			RightDepth = rightDepth;
		}
	}
}